import request from '@/utils/request'

/**
 * 获取系统配置列表
 * @param {Object} params - 查询参数
 * @param {string} [params.group] - 配置组
 * @returns {Promise} - 返回配置列表
 */
export function getConfigList(params) {
  return request({
    url: '/dk/sysbase/configs',
    method: 'get',
    params,
  })
}

/**
 * 创建系统配置
 * @param {Object} data - 配置数据
 * @param {string} data.config_key - 配置键
 * @param {string} data.config_value - 配置值
 * @param {string} data.config_description - 配置描述
 * @param {string} [data.config_group='system'] - 配置组
 * @returns {Promise} - 返回创建结果
 */
export function createConfig(data) {
  return request({
    url: '/dk/sysbase/configs',
    method: 'post',
    data,
  })
}

/**
 * 获取系统配置详情
 * @param {string} configId - 配置ID
 * @returns {Promise} - 返回配置详情
 */
export function getConfigDetail(configId) {
  return request({
    url: `/dk/sysbase/configs/${configId}`,
    method: 'get',
  })
}

/**
 * 更新系统配置
 * @param {string} configId - 配置ID
 * @param {Object} data - 配置数据
 * @param {string} data.config_value - 配置值
 * @param {string} [data.config_description] - 配置描述
 * @param {string} [data.config_group] - 配置组
 * @returns {Promise} - 返回更新结果
 */
export function updateConfig(configId, data) {
  return request({
    url: `/dk/sysbase/configs/${configId}`,
    method: 'put',
    data,
  })
}

/**
 * 删除系统配置
 * @param {string} configId - 配置ID
 * @returns {Promise} - 返回删除结果
 */
export function deleteConfig(configId) {
  return request({
    url: `/dk/sysbase/configs/${configId}`,
    method: 'delete',
  })
}

/**
 * 获取操作日志列表
 * @param {Object} params - 查询参数
 * @param {number} [params.skip=0] - 分页起始位置，从0开始
 * @param {number} [params.limit=10] - 每页记录数，最大100
 * @param {string} [params.user_id] - 用户ID
 * @param {string} [params.operation_type] - 操作类型
 * @param {string} [params.start_time] - 开始时间
 * @param {string} [params.end_time] - 结束时间
 * @returns {Promise} - 返回操作日志列表
 */
export function getOperationLogs(params) {
  return request({
    url: '/dk/sysbase/operation-logs',
    method: 'get',
    params,
  })
}

/**
 * 获取当前用户个人资料
 * @returns {Promise} - 返回个人资料
 */
export function getMyProfile() {
  return request({
    url: '/dk/sysbase/my-profile',
    method: 'get',
  })
}

/**
 * 获取模型调用记录
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getModelCallLogs(params) {
  return request({
    url: '/dk/sysbase/get_model_call_logs',
    method: 'post',
    data: params,
  })
}

/**
 * 导出模型调用记录
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function exportModelCallLogs(params) {
  return request({
    url: '/dk/sysbase/export_model_call_logs',
    method: 'post',
    data: params,
    responseType: 'blob',
  })
}
